﻿Public Class frmUser

    Private ndBUS As NguoiDungBUS
    Private ndDTO As NguoiDungDTO
    Private cm As CurrencyManager
    Private flagIsUp As Boolean
    Private Sub frmUser_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LoadData()
    End Sub
    Private Sub LoadData()
        dgvNguoiDung.ClearSelection()
        ndBUS = New NguoiDungBUS
        Dim ndList = New List(Of NguoiDungDTO)
        ndList = ndBUS.GetData()
        cm = Me.BindingContext(ndList)
        txttennguoidung.DataBindings.Add("Text", ndList, "username")
        txtmatkhau.DataBindings.Add("Text", ndList, "pass")
        txtmanguoidung.DataBindings.Add("Text", ndList, "MaUser")
        dgvNguoiDung.DataSource = ndList
    End Sub

    Private Sub LockTextbox(ByVal f As Boolean)

        txtmatkhau.Enabled = f
        txttennguoidung.Enabled = f
        txtmanguoidung.Enabled = f
        If f = False Then

            txtmatkhau.BackColor = Color.LemonChiffon
            txttennguoidung.BackColor = Color.LemonChiffon
            txtmanguoidung.BackColor = Color.LemonChiffon
        Else

            txtmatkhau.BackColor = Color.White
            txttennguoidung.BackColor = Color.White
            txtmanguoidung.BackColor = Color.White
        End If
    End Sub
    Private Sub LockButton(ByVal dt As Boolean)
        btnThem.Enabled = dt
        btnSua.Enabled = dt
        btnXoa.Enabled = dt
        btnLuu.Enabled = Not dt
        btnThoat.Enabled = dt
    End Sub
    Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click
        flagIsUp = True
        LockTextbox(True)
        LockButton(False)
        ClearTextbox()
        dgvNguoiDung.Enabled = False
        txttennguoidung.Focus()
    End Sub
    Private Sub ClearTextbox()
        txtmanguoidung.Text = ""
        txtmatkhau.Text = ""
        txttennguoidung.Text = ""

    End Sub

    Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click
        Dim cmnd As String = txtmanguoidung.Text
        Dim qs = MsgBox("Bạn chắc chắn muốn xóa tất cả thông tin về:" _
                        & vbCrLf & vbCrLf & " - Mã Người Dùng: " & txtmanguoidung.Text _
                        & vbCrLf & vbCrLf & " - Tên Người Dùng: " & txttennguoidung.Text _
                        & vbCrLf & vbCrLf & " - Mật Khẩu: " & txtmatkhau.Text, _
                        vbInformation + vbYesNo, "Thông báo")
        If qs = vbYes Then
            ndDTO = New NguoiDungDTO(cmnd)
            ndBUS = New NguoiDungBUS()
            ndBUS.XoaNguoiDung(ndDTO)
            ClearBinding()
            LoadData()
            LockTextbox(False)
            LockButton(True)
            dgvNguoiDung.Enabled = True
            MsgBox("Dữ liệu đã xóa thành công", vbInformation, "Thông báo")
        Else
            MsgBox("Đã hủy thao tác xóa!", vbExclamation, "Thông báo")
        End If
    End Sub

    Private Sub ClearBinding()

        txtmatkhau.DataBindings.Clear()
        txttennguoidung.DataBindings.Clear()
        txtmanguoidung.DataBindings.Clear()
    End Sub

    Private Sub btnSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSua.Click
        flagIsUp = False
        LockTextbox(True)
        LockButton(False)
        dgvNguoiDung.Enabled = False
        txttennguoidung.Focus()
    End Sub

    Private Sub btnLuu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLuu.Click

        Dim tennguoidung As String = txttennguoidung.Text
        Dim matkhau As String = txtmatkhau.Text
        Dim manguoidung As String = txtmanguoidung.Text
        '---------------------------------------------
        If TestInfo() Then
            ndDTO = New NguoiDungDTO(tennguoidung, matkhau, manguoidung)
            ndBUS = New NguoiDungBUS()
            ndBUS.CapNhat(ndDTO, flagIsUp)
            ClearBinding()
            LoadData()
            LockTextbox(False)
            LockButton(True)
            dgvNguoiDung.Enabled = True
            MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
        End If

    End Sub

    Private Function TestInfo() As Boolean
        TestInfo = True
        If Trim(txtmanguoidung.Text) = "" Then
            TestInfo = False
            MsgBox("Mã người dùng không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtmanguoidung.Focus()
            Exit Function
        ElseIf Trim(txttennguoidung.Text) = "" Then
            TestInfo = False
            MsgBox("Tên người dùng không được bỏ trống không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txttennguoidung.Focus()
            Exit Function
        ElseIf Trim(txtmatkhau.Text) = "" Then
            TestInfo = False
            MsgBox("mật khẩu không được bỏ trống không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtmatkhau.Focus()
            Exit Function

        End If

    End Function

    Private Sub btnHuy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHuy.Click
        ClearBinding()
        LoadData()
        LockTextbox(False)
        LockButton(True)
        dgvNguoiDung.Enabled = True
    End Sub

    Private Sub btnThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThoat.Click
        Me.Close()
    End Sub
End Class